Distributed file systems may utilize a plurality of flexible (virtual) volumes that are hosted by a plurality of nodes, and that are logically joined together to provide a unified storage space. Individual flexible volumes may be linked to other flexible volumes within the unified storage space via constructs called junctions. Illustratively, junctions may identify a particular flexible volume and/or a particular node that stores a data container referenced by the junction. For example, a directory, stored on a flexible volume, may include a junction indicating that a subdirectory is stored on another flexible volume that may be service by a different storage system. The subdirectory may comprise additional junctions associated with subdirectories of the subdirectory.
In conventional distributed storage systems, when a user desires to generate a new subdirectory, a system administrator must determine which of a plurality of flexible volumes within the distributed storage system should be utilized to store the desired subdirectory. Poor choice in selecting how the subdirectories are allocated among the flexible volumes may result in poor performance for the distributed file system. That is, for example, should a plurality of subdirectories be located on a single flexible volume, the flexible volume may become overloaded due to the volume of data access request directed to it. This may result in a significant degradation in the performance of the flexible volume, and/or the distributed file system as a whole.